When we started building iPad I realized some of the existing iPhone builds had possibly been calling values like SDKROOT incorrectly, but since there was only one sdk installed it failed silently and fell back to the default sdk. But building iPad and iPhone there's a need to call these values out correctly. From the Apple site, requirements are (quoting):
"To configure Universal apps that run on both iPad and iPhone, in Build Settings:
- set Base SDK in the Architectures section to “iPhone SDK 3.2”
- set iPhone OS Deployment Target to iPhone OS 3.1.3 or earlier
• For iPad-only development, use iPhone SDK 3.2 and target iPhone OS 3.2
• For iPhone-only, use iPhone SDK 3.1.3 and target iPhone OS 3.1.3 or earlier
• Be sure to set Targeted Device Family to iPad, iPhone, or iPhone/iPad"
But what are those values from terminal so we can pass them with Hudson?
Since we aren't building a universal app we currently have this configured in the iPhone build:
SDKROOT=iphoneos3.1.3 IPHONEOS_DEPLOYMENT_TARGET=3.1.3 TARGETED_DEVICE_FAMILY=1
and this in the iPad:
SDKROOT=iphoneos3.2 IPHONEOS_DEPLOYMENT_TARGET=3.2 TARGETED_DEVICE_FAMILY=2
Tuesday, June 15, 2010
Tuesday, June 8, 2010
iPhone Distribution code signing from Hudson
iPhone code signing for Distribution is a task in itself, but when adding in the need to do it in a hands off way it gets even more complex.
1) First you want to create and download a Distribution profile to your build machine and install in the correct spot. This is a whole topic in itself and I might create a separate post on this.
2) Open the xcodeproj for the build you want to create in Xcode.
3) Click on the Project name and then click on the Info icon at the top of the Xcode window.
4) This opens the Project Info window, then click on the Configurations tab.
5) Click on your Release build (if you don't have one yet, create one), and then choose the Duplicate button at the bottom of the window
6) Name the new Configuration 'Distribution'
7) Go back to the Configurations tab in the Project Info window and scroll down to find the Code Signing Identity choice
8) Click on the Value drop down and choose the Distribution profile for the Code Signing Identity. You can then close the Project Info window
9) The important point now!!: if you don't have version control save of the xcodeproj location to a safe backup location. If you have version control, check the xcodeproj location back in. What you should see is that the pbxproj file has changed and has been updated with the Distribution profile
10) From a Hudson build you can now call the build using this pbxproj and use '-configuration Distribution' in the xcodebuild line, and you'll have a Distribution build created!
1) First you want to create and download a Distribution profile to your build machine and install in the correct spot. This is a whole topic in itself and I might create a separate post on this.
2) Open the xcodeproj for the build you want to create in Xcode.
3) Click on the Project name and then click on the Info icon at the top of the Xcode window.
4) This opens the Project Info window, then click on the Configurations tab.
5) Click on your Release build (if you don't have one yet, create one), and then choose the Duplicate button at the bottom of the window
6) Name the new Configuration 'Distribution'
7) Go back to the Configurations tab in the Project Info window and scroll down to find the Code Signing Identity choice
8) Click on the Value drop down and choose the Distribution profile for the Code Signing Identity. You can then close the Project Info window
9) The important point now!!: if you don't have version control save of the xcodeproj location to a safe backup location. If you have version control, check the xcodeproj location back in. What you should see is that the pbxproj file has changed and has been updated with the Distribution profile
10) From a Hudson build you can now call the build using this pbxproj and use '-configuration Distribution' in the xcodebuild line, and you'll have a Distribution build created!
Subscribe to:
Posts (Atom)