2

I have very weird distribution scenario with the iOS app.

  • App works normally in simulator
  • App works normally on the device with developer profile (and corresponding bundle id domain.product)

When downloaded from testFairy service with valid enterprise provisioning profile app and bundle id (in form domain.beta.product) app:

  • Installs without error
  • Shows lunch screen and terminates immediately
  • When I connect device and check logs through Xcode -> Devices -> Show log I don't see any today's crashes, like no error happened. (this confuses me the most)

This happens on 2/2 iPhone devices that tried to run the app.

Some other infos that could maybe ring a bell to someone: - App uses Core Data - App uses TestFairy SDK (but it was the same without it) - target is iOS 7.0, base SDK is Latest iOS(iOS 8.1) - provisioning profile is set to that Enerprise Profile and signing identity is set to corresponding certs for both debug and release. - I've removed armv7 from Targets-> Info -> Required Device capabilities as suggested on some stack overflow solutions.

Anyone experienced similar problem? What could be the cause?

daneejela
  • 13,081
  • 7
  • 38
  • 50

1 Answers1

1

I work for TestFairy, I think I can assist.

Few points:

  1. TestFairy's distribution does not alter the IPA in any way.

  2. When using an enterprise profile, you need to sign using (TEAM.domain.company.app) in your application-identifier. iOS 8 shouldn't let you install if the identifier does not include the TEAM.

  3. If the app crashes immediately (with or without the Default splash screen,) it might be because you're out of memory. Does rebooting fix the problem?

  4. Can you please paste all the logs from right before the launch, till the app exits? you can attach and send to TestFairy's support (via Contact page.) That would be helpful. Also, if you're interested, you can email support with your username and link to build, and they can try installing it on their devices and let you know what the problem was.

gilm
  • 7,690
  • 3
  • 41
  • 41
  • 1
    thank you for your response, that's awesome that you guys from test fairy are wiling to help. I've sent described problem to test fairy now. – daneejela Jul 19 '15 at 09:07
  • Regarding your questions: 2.) Are you saying that my bundle id should look like TEAM.domain.company.app ? with the keyword TEAM in front of domain? 3.) I don't think it's device related since it crashes identically at 2 different phones, but let me check that 4.) I don't see any logs for the app when checking from connected Xcode -> Devices -> show logs. Is there any other way I can check this? – daneejela Jul 19 '15 at 09:10
  • No, not the word "TEAM", but the team-identifier. It's a value that's found in the Apple Portal and looks like 9MOPGFT49A (10 characters in uppercase). Then your application-identifier under entitlements in your mobileprovision must include this value before the bundle identifier. For this example, 9MOPGFT49A.domain.company.app. It's something that was introduced with iOS 8. Hope this helps :) – gilm Jul 19 '15 at 12:38
  • My App ID in the member center looks like this: Prefix:Y57YSFA7CU ID: com.cmopany.beta.product AND Bundle Id (in xcode) looks like this: com.cmopany.beta.product and team drop down selected to account for that team. – daneejela Jul 19 '15 at 14:33
  • If I try to put my bundle Id like this Y57YSFA7CU.com.cmopany.beta.product then Xcode complains that there is no available profile. Do I have to create a new App ID that would look like this: Prefix: Y57YSFA7CU ID: Y57YSFA7CU.com.cmopany.beta.product ? Sorry, I know this is basic stuff, but I'm a bit confused how should exactly look, and does prefix mean that the team number is already part of the profile. Thanks for your help! – daneejela Jul 19 '15 at 14:36
  • for others that run into this problem I will paste response from test fairy support: Acording to: https://developer.apple.com/library/ios/qa/qa1886/_index.html problem occurs because Subject Organizational Unit (OU) has to be set to our Team ID, which means that if current CERTIFICATE doesn't have it, that new certificate should be created to support swift. Awesome support from TestFairy. – daneejela Jul 24 '15 at 10:32