Expo Publish not updating React Native App - ios

We've created a webview app and we are using Expo RN. We have done EAS Build -p ios & EAS Submit -p ios.
We have then submitted it to the app store and it is now live on the app store.
But when we make a change with the app, and run Expo Publish, the app doesn't update. I've read so many docs but I'm struggling to see what I've missed.
Any help would be great!
Eas.json
{
"cli": {
"version": ">= 0.41.1"
},
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal"
},
"production": {}
},
"submit": {
"production": {}
}
}

Related

React Native: EAS IOS local development build not using my credentials.json, but stuck using a previous AdHoc profile that is deleted

My EAS IOS development build is failing, because EAS tries to use the wrong provisioning profile.
I created a new device and certificate mobile provisioning profile on the Apple development sites, set the profile in my Gymfile, and credentials.json, using KeyChain Access.
I used "was credentials" to upload the credential files to EAS.
but when I run
was build --platform ios --profile development --local
Expo always logs into the Apple Dev portal and either creates a new provisioning profile or uses the last one it created which doesn't match what I have set up in credentials.json or the Gymfile.
{
"ios": {
"distributionCertificate": {
"path": "credentials/iOS/xxxx.p12",
"password": "xxxx"
},
"provisioningProfilePath": "credentials/iOS/xxxx.mobileprovision"
}
}
Gymfile
suppress_xcode_output(false)
clean(false)
disable_xcpretty(false)
output_directory("./app_builds")
sdk("iphoneos")
export_method("development")
xcargs("CODE_SIGN_STYLE=Manual")
export_options( provisioningProfiles: { "com.xxxx.yyyy" => "com.xxx.yyyy zzzz" },signingStyle: "manual")
codesigning_identity("Apple Development: qqqqq")
eas.json
"cli": {
"version": ">= 0.38.1"
},
"build": {
"development": {
"ios": {"image": "latest"},
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal",
"developmentClient": true,
"android": {
"buildType": "apk"
}
},
"production": {}
},
"submit": {
"production": {}
}
}
Where the 'xxxx' etc are my redacted credentials names

How do I set icon for Electron app on Linux(Ubuntu, ...)?

I have successfully set icon for my electron app on MacOS and Windows OS with the icon file in the build folder, configuration on the package.json.
"build": {
...,
"mac": {
"icon": "build/icon.icns"
},
"win": {
"icon": "build/icon.png"
},
"linux": {
"icon": "build/icon.png"
},
},
However the linux platform seems to not working.
I also try to create the icons folder inside the build folder(./build/icons) as documented https://www.electron.build/icons.html which then paste the 512x512.png icon to there but nothing change after building the app.

electron-updater and missing Release Note in latest-mac.yml file in S3

I have an electron app which I would like to automatically update and to do that I am using electron-updater. It seems all the working parts are together but I cannot have the Release Notes. Here's my script to package and upload it to S3.
"package": "electron-builder build --publish always",
And here's my build
"mac": {
"category": "my.category.app",
"target": [{
"target": "dmg",
"arch": [
"arm64",
"x64"
]
}, {
"target": "zip",
"arch": [
"arm64",
"x64"
]
}],
"type": "distribution",
"hardenedRuntime": true,
"gatekeeperAssess": false,
"publish": {
"provider": "s3",
"bucket": "my-bucket-name",
"publishAutoUpdate": true
}
},
Now when I run the package, it packages the app and uploads it in my S3 bucket. I can see that all the zip, dmg and blockmap files for both x64 and arm64 are already uploaded and in addition to them, I also have the latest-mac.yml file.
When I run the app on dev, I can see that it recognizes that there is an update available and it downloads it automatically and when it is already downloaded, I can see that there is no release notes in the latest-mac.yml file. But I would like to have that as well so I can display it to my users before they accept to install it.
Any idea how to do that? Really appreciate it.

Expo eas react-native app submit gets "SwiftSupport folder is missing" error

I have an expo react native app. When I use
eas build --non-interactive -p all --auto-submit-with-profile development
All goes well. Both ios and android apps are built and submitted. It took me a long time to get there!
But I get an email back from apple that says:
ITMS-90426: Invalid Swift Support - The SwiftSupport folder is missing. Rebuild your app using the current public (GM) version of Xcode and resubmit it.
This is an expo react-native app so I do not have a SwiftSupport folder.
This is my eas.json file:
{
"cli": { "requireCommit": true },
"build": {
"development": {
"developmentClient": true,
"distribution": "internal",
"node": "12.22.8"
},
"preview": {
"distribution": "internal",
"node": "12.22.8"
},
"production": {
"distribution": "internal",
"node": "12.22.8"
}
},
"submit": {
"development": {
"android": {
"serviceAccountKeyPath": "./private/google-app-service-account.json",
"track": "internal"
},
"ios": {
"appleId": "uuu#uuuuuu.uuu",
"ascAppId": "xxxxxxxxxx",
"appleTeamId": "yyyyyyyyyy"
}
},
"production": {
"android": {
"serviceAccountKeyPath": "./private/google-app-service-account.json",
"track": "internal"
},
"ios": {
"appleId": "uuu#uuuuuu.uuu",
"ascAppId": "aaaaaaaaaa",
"appleTeamId": "bbbbbbbbbb"
}
}
}
}
I have reprovisioned (I think) and generated a new set of credentials and still no go.
I used this command to reprovision:
expo build:ios -c
Any thoughts?
I think the problem is you are building with
"distribution": "internal"
Which they are not meant to get published to ios. If you remove that it should work.

Trying to use Electron Forge to build app for Raspberry Pi Zero

I'm developing a small, simple app on a Mac based device and have installed the Electron Forge CLI, I'm running the make command and then the package command which right now exports to a Zip which doesn't seem to be recognised by the Raspberry Pi Zero (running Raspbian OS) and I don't know why.
I've tried passing linux as a platform to my config, and this doesn't build either:
My config:
"config": {
"forge": {
"packagerConfig": {},
"makers": [
{
"name": "#electron-forge/maker-squirrel",
"config": {
"name": "countdown_timer"
}
},
{
"name": "#electron-forge/maker-zip",
"platforms": [
"darwin"
]
},
{
"name": "#electron-forge/maker-deb",
"config": {}
},
{
"name": "#electron-forge/maker-rpm",
"config": {}
}
]
}
}
Where am I going wrong?
I've also tried:
electron-forge make --arch=linux
But this gives me an error, what config/command do I need to run to make an app for this platform?
What worked for me on the Raspberry Pi 4.
Copy your project to the PI
In the project dir run: npm run make -- --arch=armv7l --targets=#electron-forge/maker-deb
You get am installable .deb, in the project/out/make/deb/armv7l folder

Resources