Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
277 views
in Technique[技术] by (71.8m points)

ios - Enterprise (in-house) Swift application quits on launch on iOS9

We find that our Swift application signed by in house certificate cannot run on iOS9 while it works correctly on iOS8. We have trusted the developer on settings -> general -> profiles, but when we try to launch the app, it gets stuck on the launch screen and then quits.

We don't have any clue from the logs. It only tells that it failed to launch after 20.00s.

I suspect that is an issue related to the signing. Because when I sign the application with an AdHoc certificate, it has no problem in running on iOS9.

Doesn't anybody know what is going on ?


Seems to related to these issues


**Device Logs**

Incident Identifier: B4564227-5CC9-447B-9A52-BEC5EB36EE44
CrashReporter Key:   9ec38d809cfa493300f95e440530ad11ac05e5d7
Hardware Model:      iPad4,1
Process:             xxxxxxx xxxxxxxx [2345]
Path:                /var/mobile/Containers/Bundle/Application/02F4CDFC-83E8-4474-9314-4848354A8FC0/xxxxxxx xxxxxxx.app/xxxxxx xxxxxxx
Identifier:          com.xxxxx.xxxxx.xxxxxxx
Version:             5097 (4.0)
Code Type:           ARM-64 (Native)
Parent Process:      launchd [1]

Date/Time:           2015-09-23 10:19:41.41 +0200
Launch Time:         2015-09-23 10:19:16.16 +0200
OS Version:          iOS 9.0 (13A344)
Report Version:      105

Exception Type:  00000020
Exception Codes: 0x000000008badf00d
Exception Note:  SIMULATED (this is NOT a crash)
Highlighted by Thread:  0

Application Specific Information:
com.xxxxxxx.enterprise.xxxxxxx failed to launch after 20.00s (launchIntent: foreground-interactive)

Elapsed total CPU time (seconds): 22.260 (user 22.260, system 0.000), 56% CPU 
Elapsed application CPU time (seconds): 0.002, 0% CPU

Filtered syslog:
None found

Thread 0:
0   dyld                            0x0000000120054490 __fcntl + 8
1   dyld                            0x0000000120053e94 fcntl + 128
2   dyld                            0x0000000120042cec ImageLoaderMachO::loadCodeSignature(linkedit_data_command const*, int, unsigned long long, ImageLoader::LinkContext const&) + 68
3   dyld                            0x0000000120045dd0 ImageLoaderMachOCompressed::instantiateFromFile(char const*, int, unsigned char const*, unsigned long, unsigned long long, unsigned long long, stat const&, unsigned int, unsigned int, linkedit_data_command const*, encryption_info_command const*, ImageLoader::LinkContext const&) + 228
4   dyld                            0x0000000120041ccc ImageLoaderMachO::instantiateFromFile(char const*, int, unsigned char const*, unsigned long long, unsigned long long, stat const&, ImageLoader::LinkContext const&) + 268
5   dyld                            0x0000000120033800 dyld::loadPhase6(int, stat const&, char const*, dyld::LoadContext const&) + 396
6   dyld                            0x0000000120037d6c dyld::loadPhase5stat(char const*, dyld::LoadContext const&, stat*, int*, bool*, std::__1::vector<char const*, std::__1::allocator<char const*> >*) + 172
7   dyld                            0x0000000120037c38 dyld::loadPhase5(char const*, char const*, dyld::LoadContext const&, std::__1::vector<char const*, std::__1::allocator<char const*> >*) + 736
8   dyld                            0x0000000120037928 dyld::loadPhase4(char const*, char const*, dyld::LoadContext const&, std::__1::vector<char const*, std::__1::allocator<char const*> >*) + 192
9   dyld                            0x00000001200373e0 dyld::loadPhase3(char const*, char const*, dyld::LoadContext const&, std::__1::vector<char const*, std::__1::allocator<char const*> >*) + 696
10  dyld                            0x0000000120036edc dyld::loadPhase1(char const*, char const*, dyld::LoadContext const&, std::__1::vector<char const*, std::__1::allocator<char const*> >*) + 160
11  dyld                            0x0000000120033314 dyld::loadPhase0(char const*, char const*, dyld::LoadContext const&, std::__1::vector<char const*, std::__1::allocator<char const*> >*) + 236
12  dyld                            0x0000000120032fdc dyld::load(char const*, dyld::LoadContext const&) + 160
13  dyld                            0x0000000120037ecc dyld::libraryLocator(char const*, bool, char const*, ImageLoader::RPathChain const*) + 52
14  dyld                            0x000000012003fd34 ImageLoader::recursiveLoadLibraries(ImageLoader::LinkContext const&, bool, ImageLoader::RPathChain const&, char const*) + 332
15  dyld                            0x000000012003f1d8 ImageLoader::link(ImageLoader::LinkContext const&, bool, bool, bool, ImageLoader::RPathChain const&) + 124
16  dyld                            0x0000000120034c44 dyld::link(ImageLoader*, bool, bool, ImageLoader::RPathChain const&) + 176
17  dyld                            0x0000000120035b64 dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) + 2408
18  dyld                            0x0000000120031044 _dyld_start + 68

No thread state (register information) available

Binary Images:

0x1000d8000 - 0x100543fff xxxxxxxx xxxxxxxxx arm64  <411a29d1e9843b17802cda346d9d7d5f> /var/mobile/Containers/Bundle/Application/02F4CDFC-83E8-4474-9314-4848354A8FC0/xxxxxx xxxxxxx.app/xxxxxxxx xxxxxxxx
0x100750000 - 0x100963fff libswiftCore.dylib arm64  <1c8fc0a4195f3207ac97389aafa69c65> /var/mobile/Containers/Bundle/Application/02F4CDFC-83E8-4474-9314-4848354A8FC0/xxxxx xxxxxx.app/Frameworks/libswiftCore.dylib
0x1014d0000 - 0x1014d7fff libswiftCoreData.dylib arm64  <b751a5bac05c3293aa1c6b01d78d6bf7> /var/mobile/Containers/Bundle/Application/02F4CDFC-83E8-4474-9314-4848354A8FC0/xxxxxxxxx xxxxxxx.app/Frameworks/libswiftCoreData.dylib
0x120030000 - 0x12005bfff dyld arm64  <1b945967d665331dbf2600249e46660a> /usr/lib/dyld

Those are the live logs when we launch the app

Sep 24 10:23:22 iPad SpringBoard[53] <Error>:  SecTrustEvaluate  [leaf IssuerCommonName SubjectCommonName]
Sep 24 10:23:25 iPad SpringBoard[53] <Error>:  SecTrustEvaluate  [leaf IssuerCommonName SubjectCommonName]
Sep 24 10:23:26 iPad amfid[1091] <Error>:  SecTrustEvaluate  [leaf IssuerCommonName SubjectCommonName]
Sep 24 10:23:39 iPad kernel[0] <Notice>: xpcproxy[1186] Container: /private/var/mobile/Containers/Data/Application/02AF80DC-26F3-4AAE-AD90-A4F148E574AE (sandbox)
Sep 24 10:23:39 iPad amfid[1091] <Error>:  SecTrustEvaluate  [leaf IssuerCommonName SubjectCommonName]
Sep 24 10:23:39 iPad SpringBoard[53] <Error>: CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Sep 24 10:23:39 iPad SpringBoard[53] <Error>: CGContextTranslateCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Sep 24 10:23:39 iPad SpringBoard[53] <Error>: CGContextRestoreGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Sep 24 10:23:39 iPad SpringBoard[53] <Error>: CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Sep 24 10:23:39 iPad SpringBoard[53] <Error>: CGContextTranslateCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Sep 24 10:23:39 iPad SpringBoard[53] <Error>: CGContextRestoreGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Sep 24 10:23:52 iPad syncdefaultsd[1127] <Notice>: (Note ) marked "com.me.keyvalueservice" topic as "enabled" on <APSConnection: 0x15d50e780>
Sep 24 10:23:53 iPad amfid[1091] <Error>:  SecTrustEvaluate  [leaf IssuerCommonName SubjectCommonName]
Sep 24 10:23:58 iPad amfid[1091] <Error>:  SecTrustEvaluate  [leaf IssuerCommonName SubjectCommonName]
Sep 24 10:23:59 iPad SpringBoard[53] <Warning>: Forcing crash report of <FBApplicationProcess: 0x128ef74e0; Schneider Elect; pid: 1186> (reason: 1, description: com.xxxxxxxxxxx.enterprise.xxxxxxxxxxxxxx failed to launch after 20.00s (launchIntent: foreground-interactive))
Sep 24 10:23:59 iPad kernel[0] <Notice>: int _validateCodeDirectoryHashInDaemon(const char *, off_t, uint8_t *, int, int *): verify_code_directory returned 0x10004005
Sep 24 10:23:59 iPad SpringBoard[53] <Warning>: Finished crash reporting.
Sep 24 10:23:59 iPad com.apple.xpc.launchd[1] (UIKitApplication:com.xxxxxxxxxxx.enterprise.xxxxxxxxxxxxxx[0x9388][1186]) <Notice>: Service exited due to signal: Killed: 9
Sep 24 10:23:59 iPad ReportCrash[1187] <Warning>: saved type '109_Schneider Electric' report (2 of max 25) as /var/mobile/Library/Logs/CrashReporter/Schneider Electric_2015-09-24-102359_iPad.ips
Sep 24 10:23:59 iPad SpringBoard[53] <Warning>: Application 'UIKitApplication:com.xxxxxxxxxxx.enterprise.xxxxxxxxxxxxxx[0x9388]' exited abnormally via signal.
Sep 24 10:24:00 iPad searchd[156] <Warning>: ====^^^^ DuetExpert missing requested data, people:0 applicationDeepLinks:1 applications:0 requests:36 missingAllDataRequests:0
Sep 24 10:24:04 iPad amfid[1091] <Error>: mig_source_handler: dispatch_mig_server returned 268435459

When we install the app from HockeyApp we have the following logs

Sep 24 10:26:03 iPad itunesstored[103] <Warning>: [Download]: Adding download(s): -7184518095014445338
Sep 24 10:26:03 iPad itunesstored[103] <Warning>: LaunchServices: installing placeholder for <LSApplicationProxy: 0x14e0a5530> com.xxxxxxx.enterprise.xxxxxxx <(null) *Not found in database*>
Sep 24 10:26:03 iPad installd[46] <Notice>: 0x16e12f000 -[MIClientConnection installPath:withOptions:completion:]: Install of "/var/mobile/Library/Caches/com.apple.itunesstored/AppPlaceholders/-xxxxxxxxxx.app" type Placeholder requested by itunesstored (pid 103)
Sep 24 10:26:03 iPad installd[46] <Notice>: 0x16e087000 -[MIInstaller performInstallationWithError:]: Installing <MIInstallableBundle ID=com.xxxxxxxxxxx.enterprise.xxxxxxxxxxxxxx; Version=5106, ShortVersion=(null)>
Sep 24 10:26:03 iPad installd[46] <Notice>: 0x16e087000 -[MIContainer makeContainerLiveReplacingContainer:reason:withError:]: Made container live for com.xxxxxxxxxxx.enterprise.xxxxxxxxxxxxxx at /private/var/mobile/Containers/Data/Application/28FBA6E7-DCD8-49B2-BA05-EFD951531A64
Sep 24 10:26:03 iPad installd[46] <Notice>: 0x16e087000 -[MIContainer makeContainerLiveReplacingContainer:reason:withError:]: Made container live for com.xxxxxxxxxxx.enterprise.xxxxxxxxxxxxxx at /private/var/mobile/Containers/Bundle/Application/6631F035-AF52-41CB-8299-7E781971C65E
Sep 24 10:26:03 iPad installd[46] <Notice>: 0x16e087000 -[MIInstaller performInstallationWithError:]: Install Successful; Staging: 0.00s; Waiting: 0.00s; Preflight/Patch: 0.00s, Verifying: 0.00s; Overall: 0.09s
Sep 24 10:26:03 iPad itunesstored[103] <Warning>: LaunchServices: Creating installProgressForApplication:<LSApplicationProxy: 0x14e0b0aa0> com.xxxxxxxxxxx.enterprise.xxxxxxxxxxxxxx (Placeholder) <file:///private/var/mobile/Containers/Bundle/Application/6631F035-AF52-41CB-8299-7E781971C65E/-7184

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I solved this by wiping out the provisioning profiles on my device. Go to your Xocde -> Devices -> Gear icon -> Show provisioning profiles and remove them one by one, until you remove all of them.

I don't know what iOS 9 does with Enterprise signed app, but it seems that it attempts to verify something (by going through all of your provisioning profiles) and failed a lot upon first launch. This shouldn't happen with App Store builds.

Hope that helps.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...