So I have a very weird problem. Trying to deploy the once click deployment using the enterprise code signing thing.
I have it uploaded on the server and I go to the link in safari, when I open it on the iPhone it gives me unable to download, application cannot be installed at this time. However, when I tried it on my iPad (iPhone app running on iPad), it works just fine. Why is this?
Your problem is one of 2 things.
The xml in your .plist that goes with the app has incorrect values or you are using a non enterprise distribution certificate. Make sure you have a current certificate and when building select that cert. Also make sure the xml in your plist is correct.
Note a fields you enter when building the app ( icon, target host, etc. ) are not necessary to enter all the time. ( I just type the letter a into each field ) I copied the original plist and changed the values manually. I deploy the file to a temp folder and only copy the .ipa to by IIS virtual folder.
Related
I've been working on a new Mac app based on (copied from) an old Unity project. I have renamed the new project at the folder level, and have changed the 'Product Name' in 'Player Settings'. But when I build the app on the same computer that the old app was built on, the new app opens already populated with the information stored in the plist for the old app.
I want to have both apps working on the same computer, but now having used the new program on the same computer as the old, it has wiped the plist information from the old program and replaced it.
How do I force the app to use a unique PlayerPrefs plist? (Hopefully without having to rebuild the project from scratch!)
According to the API on MacOs in the editor PlayerPrefs uses a path based on the bundleIdentifier
In-Editor Play mode storage location
On macOS, PlayerPrefs are stored in /Library/Preferences/[bundle identifier].plist.
=> Try to change the bundle identifier in the PlayerSettings
i just signed up for this place, i have made app everything is working fine with app all the certificates and files are updated but when i try to upload to app store from xcode i keep getting this error. if anybody could help me to fix it it will be great thank you
iTunes Store operation failed.You must supply a CFBundleIdentifier for this request.
Your info.plist application is wrong.
open your info.plist,"Bundle OS Type code" is null.I met the same problem,and add "APPL" to "Bundle OS Type code",that's OK.
Your info.plist configuration is wrong.
open your info.plist,"Bundle OS Type code" is null.I met the same problem,and add "APPL" to "Bundle OS Type code",that's OK. See image here
Login in Apple Developer, go to Certificates*Profiles, delete all development and distribute signing certificates and provisioning profiles. Then in Xcode8 you select "Automatically manage signing", recreate signing certificates and provisioning profiles,archive and upload to appstore again.
This one nearly put me mad. How I fixed it was creating a test project and doing an archive on it, and validate, which passed. I then copies all of the build setting from the test project to my project and thankfully everything worked. I know its along way off doing it, but it works.
this is what i have done and it did work for me
i did have to explicitly add the bundle identifier in the .plist file like this
<key>CFBundleIdentifier</key>
<string>com.AppIdentifier</string>
instead of
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
the reason might be that i do have multiple target in the project and i was uploading the app from the application loader
please note that in both cases i was able to archive successfully
env.
Xcode 10.1
High Sierra 10.13.6
I have uploaded an app update with my WatchKit extension but it keeps saying "Invalid Binary" in iTunes Connect. Do I need to tell iTunes Connect that it should include a WatchKit app anywhere?
I checked the email from iTunesConnect and the issue was that my app icons had an alpha channel. I corrected the icons and now works fine.
Folks submitting zipped app files will run into this validation error as well because zipped apps are no longer supported for apps containing a watch extension. Follow these steps to generate a submittable .ipa file instead:
Supporting Raw Zip Watch App Submissions
App Store import validation ensures that watch app submissions include additional files alongside the submitted bundle that are generated by Xcode. This prevents you from using the old submission workflow of submitting a zipped app file using Application Loader.
However, if you have a build process which currently prevents submitting the watch app using Xcode, you may use the following process to generate the necessary .ipa file to be submitted using Application Loader:
Create a directory named WatchKitSupport as a sibling to Payload
Copy a binary named "WK" from the iOS 8.2 SDK in Xcode to your new WatchKitSupport directory. This binary can be found at: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/Library/Application Support/WatchKit/
Do not touch or re-sign the WK binary in any way
Compress everything into a zip and rename the file extension to .ipa
Note: You may compare your .ipa with one generated by Xcode by exporting an .ipa from an archive of a new Xcode project template for which you have added a watch target.
The format of the resulting IPA should contain (at least):
myApp.ipa
|________Payload/
|________Symbols/
|________WatchKitSupport/
|_____WK
I got the same thing when I submitted my WatchKit app this morning. I also got an email from Apple saying why it was invalid. I was using a third party class called Reachability that is the same name as a private API. I removed Reachability and checked for readability another way and I was able to submit.
I have been developing an OSX app with Delphi XE3 and running into various problems. The latest one is with the sanboxed version built for the Apple Appstore.
The user has to select an arbitrary folder and the app needs to get access to it. Since there is a problem with the OpenDialog, I had to turn to drag-drop functionality instead.
The user drags a folder to the app, the sandbox gives the app temporary access to it and all works properly.
To preserve the access to this folder when the app is restarted I have to use the so-called "security-scoped bookmarks"
I am having two issues with them:
1) How to add the "com.apple.security.files.bookmarks.app-scope" entitlement to an XE3 firemonkey app? It is not available in the Project Options->Entitlements. If I add it manually in the ".entitlements" file it gets overwritten when the app is built.
So is there a way to add a custom entitlement that is not in the list in the project options?
2) To create the bookmark I should use the NSURL.bookmarkDataWithOptions method. I think it should be used like this, but I am not sure of the exact syntax:
var
URL: NSURL;
Err: NSError;
Data: NSData;
...
URL := TNSURL.Create;
Data := URL.bookmarkDataWithOptions(NSURLBookmarkCreationWithSecurityScope, nil, #Err);
...
Maybe there should be a call to Wrap(...) instead of Create.
I have not yet experimented with it, because it is pointless without the answer to issue 1).
It seems no one has written anything about these problems for Delphi, but I hope someone here has experience with that.
Thanks in advance.
Edit:
For problem 1) I tried to add edit manually the ".entitlements" file in the OSX32 folder and set it to read-only to prevent it from being overwritten. It was too easy to be true of course, because the linker complained that the file can not be modified...
OK, I finally found the way to manually add entitlements that are not available in the Project Options > Entitlements.
Instead of selecting the "App Store" build in the Project Manager you have to select a Normal release build and deploy the application as usual.
The application gets deployed in the PAServer scratch-dir as APP package. Inside this package there is an "Entitlements.plist" file, which is in XML format and can be edited with a text editor. It is quite obvious how to add new entitlements once you open the file.
After it is edited, the app has to be code-signed manually and a package has to be prepared. It is slightly more complicated than using the Delphi IDE, but there are instructions about it on the Embarcadero and Apple websites and it actually went without problems.
Still haven't tried the bookmarkDataWithOptions functions.
An alternative could be to deactivate the checkbox for the entitlements-file in the deployment page.
But attention: Evry time you change between Build/Release or App Store/Normal, delphi activates the checkbox. That means you have to deactivate it again in the deplayment-page, to avoid the transfer of this file to the mac PC.
By the way: Do you have tryed meanwhile the StartAccessingSecurityScopedResource function?
In the MacApi.Foundation unit the function is not declared in the NSURL interface.
Do you have found a way to use this function?
I created an App and started to sandbox it. Now I did privilege separation using xpc-services. I downloaded the "SandboxedFetch" example from Apple, which shows two xpc-services like
an application (application-icon). In my App the xpc-services show the "pluggin"-icon. The summary tab in the project setting for my xpc-service is not available, which means that I cannot configure the entitlements like I can do on the main app. I copied a custom made entitlements-file to the xpc-service and referenced it in the project settings. But the service is running always without privilege restrictions applied to the service.
Do I need a new certificate for the service? If my app is named "com.mycompany.app" and my service is named "com.mycompany.app.service" I cannot apply my app certificate to the service. I am somehow confused about this sandboxing stuff. Do I need a new certificate for my xpc-service? If not, how can I apply the entitlements to it?
This seems to be a "bug" of Xcode. Maybe The XPC-service-template will have a summary-tab in future. Now you can create a entitlements plist file manually or use the application entitlement file and copy it into your xpc-service folder. In project settings type the path and name for this new entitlement file into the entitlement field. Change your entitlements inside this file. Sandboxing will run now.
For codesigning, select your "3rd Party Mac Developer" certificate (and not the Mac Developer certificate).