Ios app signing with cocos 3.16 and xcode 9

Auto build server used for example by test driven development.

@zhangxm maybe you can help with this issue?

Sure, i will take a look. I think it is Xcode 9 related. It is bothersome that Xcode changes time and time.

Please update us with status if it is something u can reproduce and if there will be solution.

Thanks

@zhangxm has been working on this issue and I think he has it cracked. Let us give him more time to ensure success.

I think i fixed it. You should do these modifications to fix it for v3.16 and previous versions:

  • merge the PR into project_compile.py (COCOS2D_X_ROOT/tools/cocos2d-console/plugins/plugin_compile/project_compile.py)
  • add exportoptions.plist into:
    • proj.ios_mac/ios for cpp projects
    • frameworks/runtime-src/proj.ios_mac/ios for Lua or JS projects
  • should modify the content of exportoptions.plist according to your environment
    <?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>compileBitcode</key>
    <false/>
    <key>method</key>
    <string>development</string> --> should change it to match your provision profile type
    <key>provisioningProfiles</key>
    <dict>
    	<key>org.cocos2dx.MyCppGame</key>  --> should modify it to your bundle identifier
    	<string>cocos2d-x tests</string>   --> should change to your provision profile name
    </dict>
    </dict>
    </plist>
    

Then you can use the command to generate .ipa file

cocos compile -p ios -m release -j4 --sign-identity "iPhone Developer: XXX"

You should make sure do the modification in Xcode:

  • don’t enable Automatically manage signing
  • should select a provision profile

And you should make sure the method value in exportoptions.plist matches the profile type.
exportoptions.plist.zip (428 Bytes)

Any feedback? I will merge it and send a PR to cocos2d-x if it works on your environments too.

I am testing this AM

Edit: So far this works. Testing in a clean repo just to be sure.

Hi, is it still possible to use automatic signing? I think it is now very ussefull stuff, when developers working with automatic signing and they pushing code they no need to change certeficate to compile on server side. If it still possible we should make it sign automaticly

I think you just need to edit the exportoptions.plist one time before automatically.