Basically, because of an issue with push notifications, I’m following the guide here to implement a fix that was pushed but not yet released as a part of an SDK release. My app is not detached, and has been published in the app store so I am generally familiar with the build process.
I am in way over my head with this and currently very stuck.
attempted to run gulp ios-shell-app --action build --type archive --configuration Release
And it fails with the following error:
xcodebuild is running. Logging errors only. To see full output, use --verbose 1...
** ARCHIVE FAILED **
The following build commands failed:
Ld /Users/derek/projects/expo-fix/shellAppBase-archive/Build/Intermediates.noindex/ArchiveIntermediates/ExpoKitApp/IntermediateBuildFilesPath/ExpoKitApp.build/Release-iphoneos/ExpoKitApp.build/Objects-normal/armv7/ExpoKitApp normal armv7
[20:57:13] 'ios-shell-app' errored after 3.62 min
[20:57:13] Error: Process exited with non-zero code: 65
at ChildProcess.child.on (/Users/derek/projects/expo-fix/tools-public/node_modules/@expo/spawn-async/build/spawnAsync.js:39:21)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at maybeClose (internal/child_process.js:925:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
I have no idea where to start - I feel like I did a fair amount of messing around and there are a lot of threads to pull at.
P.S. expo is the shit, thank god I haven’t had to deal with this kind of stuff until I wanted to do something really crafty
When it comes to cloning the submodules, next time I would recommend running git submodule update --init, which takes care of both initializing any missing submodules and updating them to required commits.
You don’t need to remove previous SDK versions from versioned-react-native (in fact it may cause more problems). There is another way to strip old SDKs from the archive—run the command with --shellAppSdkVersion UNVERSIONED param. This will ensure that both the Podfile (package.json for native iOS dependencies) and the project are configured well for a single SDK app (and that’s what we’re trying to build here).
I think the submodules issue was because I wasn’t cloning them over https, and my public key doesn’t have permission to clone it, so I did it over https and it worked fine.
You don’t need to remove previous SDK versions from versioned-react-native (in fact it may cause more problems).
Doing that was the only way I was able to fix the pod issue, I had a feeling it was going to mess things up.
When I ran it with --verbose 1, this is the result. Here’s the result of building it with xcode, not sure if it helps. Going to re-fork the repo and try to run it with UNVERSIONED without having removed everything I did, I’ll let you know how that goes.
@sjchmiela I ran gulp ios-shell-app --action build --type archive --configuration Release --shellAppSdkVersion UNVERSIONED on release 2.10.1 without the changes in your pull request applied, and it built fine. However, when I make the changes to EXKernel.m and EXUserNotificationManager.m, it fails with the same error.
Edit: I stashed the change to EXKernel.m and only ran it with the changes to EXUserNotificationManager.m and the build completed.