MDM and App deployment <little of topic>

JOHN PATTEN johnpatten at me.com
Thu Apr 6 17:58:30 EDT 2017


Hi All,

Since I don’t know what a proper manifest file (info.plist) should look like, other than what LiveCode creates via the standalone process, and I could not get my hands on one someone  is using for their apps in the JAMF MDM, I decided just to build an app in Xcode/Swift and extract its info.plist for comparison.

This also allowed me to check to make sure my cert and Enterprise Distribution  profile were correct. Apple has some FoodApp tutorials, I took one of their competed samples and compiled it into an app in Xcode with our Enterprise Developer profile. I was able to load it up into our JAMF MDM, assign it to a iPad in the MDM, and then download it from the Self Service app onto the targeted iPad. Apparently the profile is good.

When I look at the two info.list files, they were fairly similar, but it appears that LiveCode add a lot of keys that Xcode does when it compiles. I briefly tried to make the LiveCode info.plist appear more like the Xcode info.plist, and then try my app over with the new info.plist I modified. It still was not working for me. I was in a bit of a rush, so I will do it again with a little more care. 

I have included both the info.plist from my app, and the info.plist from the Xcode “food app.”  Not sure if anything will jump out at anyone, but please let me know if so.

I am guessing that the LiveCode info.plist is what is fouling up the MDM delivery of my app.

Here they are:

MyOpenMath app info.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>English</string>
	<key>CFBundleDisplayName</key>
	<string>MyOpenMath</string>
	<key>CFBundleName</key>
	<string>MyOpenMath</string>
	<key>CFBundleExecutable</key>
	<string>MyOpenMath</string>
	<key>CFBundleIdentifier</key>
	<string>com.sylvanapps.myopenmath</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	
	
	<key>CFBundleSupportedPlatforms</key>
	<array>
		<string>iPhoneOS</string>
	</array>
	<key>CFBundleVersion</key>
	<string>1.0.2</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0.2</string>
	<key>CFBundleIconFiles</key>
	<array>
		<string>Icon-72.png</string><string>Icon-144.png</string><string>Icon-76.png</string><string>Icon-152.png</string>
	</array>
	<key>UILaunchImages</key>
	<array>
				<dict>
			<key>UILaunchImageMinimumOSVersion</key>
			<string>8.0</string>
			<key>UILaunchImageName</key>
			<string>Default-Portrait</string>
			<key>UILaunchImageOrientation</key>
			<string>Portrait</string>
			<key>UILaunchImageSize</key>
			<string>{768, 1024}</string>
		</dict>
		<dict>
			<key>UILaunchImageMinimumOSVersion</key>
			<string>8.0</string>
			<key>UILaunchImageName</key>
			<string>Default-Landscape</string>
			<key>UILaunchImageOrientation</key>
			<string>Landscape</string>
			<key>UILaunchImageSize</key>
			<string>{768, 1024}</string>
		</dict>

	</array>
	<key>DTCompiler</key>
	<string>com.apple.compilers.llvm.clang.1_0</string>
	<key>DTPlatformBuild</key>
	<string>12B411</string>
	<key>DTPlatformName</key>
	<string>iphoneos</string>
	<key>DTPlatformVersion</key>
	<string>8.1</string>
	<key>DTSDKBuild</key>
	<string>12B411</string>
	<key>DTSDKName</key>
	<string>iphoneos8.1</string>
	<key>DTXcode</key>
	<string>0610</string>
	<key>DTXcodeBuild</key>
	<string>6A1052c</string>
	<key>CFBundleDisplayName</key>
		<string>MyOpenMath</string>
	<key>MinimumOSVersion</key>
		<string>10.1</string>
	<key>UIDeviceFamily</key>
	<array>
		<integer>2</integer>
	</array>
	
	<key>UIRequiredDeviceCapabilities</key>
	<dict>
		
	</dict>
	<key>UIRequiresPersistentWiFi</key>
		<false/>
	<key>UIApplicationExitsOnSuspend</key>
		<true/>
	<key>UIInitialInterfaceOrientation</key>
		<string>UIInterfaceOrientationPortrait</string>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
	</array>
	<key>UIInitialInterfaceOrientation~ipad</key>
		<string>UIInterfaceOrientationPortrait</string>
	<key>UISupportedInterfaceOrientations~ipad</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string><string>UIInterfaceOrientationLandscapeLeft</string>
	</array>
	<key>UIBackgroundModes</key>
	<array>
		
	</array>
	<key>UIViewControllerBasedStatusBarAppearance</key>
		<false/>
	<key>NSLocationAlwaysUsageDescription</key><string>This application requires access to Location Services always</string>
	<key>UIStatusBarHidden</key>
		<false/>
	<key>UIStatusBarHidden~ipad</key>
		<false/>
	<key>UIStatusBarStyle</key>
		<string>UIStatusBarStyleDefault</string>
	<key>com_livecode_StatusBarSolid</key>
		<false/>
	<key>com_livecode_UsesLocalNotifications</key>
		<false/>
	<key>UIFileSharingEnabled</key>
		<false/>
	<key>UIPrerenderedIcon</key>
		<false/>
	<key>UIAppFonts</key>
	<array>
		
	</array>
	<key>NSBluetoothPeripheralUsageDescription</key>
	<string>This application requires access to Bluetooth</string>
	<key>NSCalendarsUsageDescription</key>
	<string>This application requires access to the device's calendar</string>
	<key>NSCameraUsageDescription</key>
	<string>This application requires access to the device's camera</string>
	<key>NSContactsUsageDescription</key>
	<string>This application requires access to your Contacts</string>
	<key>NSMicrophoneUsageDescription</key>
	<string>This application requires access to the device's microphone</string>
	<key>NSMotionUsageDescription</key>
	<string>This application requires access to the device's accelerometer</string>
	<key>NSRemindersUsageDescription</key>
	<string>This application requires access to your Reminders</string>
	<key>NSPhotoLibraryUsageDescription</key>
	<string>This application requires access to Photo Library</string>
</dict>
</plist>

——————————————————————

Xcode Food App info.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>CFBundleName</key>
    <string>FoodTracker</string>
    <key>DTXcode</key>
    <string>0820</string>
    <key>DTSDKName</key>
    <string>iphoneos10.2</string>
    <key>UILaunchStoryboardName</key>
    <string>LaunchScreen</string>
    <key>DTSDKBuild</key>
    <string>14C89</string>
    <key>CFBundleDevelopmentRegion</key>
    <string>en</string>
    <key>CFBundleVersion</key>
    <string>1</string>
    <key>BuildMachineOSBuild</key>
    <string>16E195</string>
    <key>DTPlatformName</key>
    <string>iphoneos</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>UIMainStoryboardFile</key>
    <string>Main</string>
    <key>CFBundleSupportedPlatforms</key>
    <array>
      <string>iPhoneOS</string>
    </array>
    <key>CFBundleShortVersionString</key>
    <string>1.0</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>UIRequiredDeviceCapabilities</key>
    <array>
      <string>armv7</string>
    </array>
    <key>CFBundleExecutable</key>
    <string>FoodTracker</string>
    <key>DTCompiler</key>
    <string>com.apple.compilers.llvm.clang.1_0</string>
    <key>UISupportedInterfaceOrientations~ipad</key>
    <array>
      <string>UIInterfaceOrientationPortrait</string>
      <string>UIInterfaceOrientationPortraitUpsideDown</string>
      <string>UIInterfaceOrientationLandscapeLeft</string>
      <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>CFBundleIdentifier</key>
    <string>com.sylvanapps.FoodTracker</string>
    <key>MinimumOSVersion</key>
    <string>10.0</string>
    <key>DTXcodeBuild</key>
    <string>8C38</string>
    <key>DTPlatformVersion</key>
    <string>10.2</string>
    <key>LSRequiresIPhoneOS</key>
    <true/>
    <key>UISupportedInterfaceOrientations</key>
    <array>
      <string>UIInterfaceOrientationPortrait</string>
      <string>UIInterfaceOrientationLandscapeLeft</string>
      <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>UIDeviceFamily</key>
    <array>
      <integer>1</integer>
      <integer>2</integer>
    </array>
    <key>DTPlatformBuild</key>
    <string>14C89</string>
  </dict>
</plist>



Thank you!

> On Apr 6, 2017, at 8:28 AM, JOHN PATTEN via use-livecode <use-livecode at lists.runrev.com> wrote:
> 
> Thanks Terry and Jacqueline,
> 
> The file/app is being served via our MDM which is using https.
> 
> Terry, you mention that the manifest file has to be perfect, do you happen to know what that would look like? I have never tweaked the manifest file that gets created automatically. 
> 
> I have been following Richard Miller’s challenges with getting his app into the regular app store so I know the info.plist file can be problematic, depending on what you are trying to do.  However, I’m not quite sure what a “perfect” plist file should look like. Someone else had mentioned being sure that I,…  "Call all the links on the plist and html with https,” but I’m not sure what that means.  It was pulled from this this stackoverflow conversation, http://stackoverflow.com/questions/34820355/enterprise-app-installing-but-immediatelly-dissapears <http://stackoverflow.com/questions/34820355/enterprise-app-installing-but-immediatelly-dissapears>, but I have  a hunch it is not the same problem as mine.
> 
> Let me know if I’ missing something in the plist file….
> 
> 
> Thank you!
> 
> 
> 
> 
>> On Apr 5, 2017, at 7:35 PM, Terry Judd via use-livecode <use-livecode at lists.runrev.com> wrote:
>> 
>> I missed the start of this thread so I might be off target but the app needs to be server from a secure (https) server. If it isn’t and/or if your manifest file isn’t perfect then you will get that sort of message as well.
>> 
>> Terry...
>> 
>> On 6/04/2017 12:18 pm, "use-livecode on behalf of J. Landman Gay via use-livecode" <use-livecode-bounces at lists.runrev.com on behalf of use-livecode at lists.runrev.com> wrote:
>> 
>>   On 4/5/17 5:17 PM, JOHN PATTEN via use-livecode wrote:
>>> A student iPad can see the app in their Self Service app, but when
>>> they go to install it reports it can’t download at this time.
>> 
>>   I don't know if things are different with an Enterprise account, but in 
>>   my experience an app that partially downloads and then errors indicates 
>>   something wrong with the distribution profile.
>> 
>>   -- 
>>   Jacqueline Landman Gay         |     jacque at hyperactivesw.com
>>   HyperActive Software           |     http://www.hyperactivesw.com
>> 
>> 
>>   _______________________________________________
>>   use-livecode mailing list
>>   use-livecode at lists.runrev.com
>>   Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>>   http://lists.runrev.com/mailman/listinfo/use-livecode
>> 
>> 
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode





More information about the use-livecode mailing list